{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "78f42bbb",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "from sklearn.cluster import KMeans\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9b731c0",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "2cf99c90",
   "metadata": {},
   "outputs": [],
   "source": [
    "raw_data = pd.read_excel('./data2.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "5bf622a3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>各市（州）</th>\n",
       "      <th>公路货物周转量(万吨公里)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>成都市</td>\n",
       "      <td>3.402963e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>自贡市</td>\n",
       "      <td>5.449789e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>攀枝花市</td>\n",
       "      <td>5.378351e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>泸州市</td>\n",
       "      <td>1.111448e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>德阳市</td>\n",
       "      <td>6.773837e+05</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  各市（州）  公路货物周转量(万吨公里)\n",
       "0   成都市   3.402963e+06\n",
       "1   自贡市   5.449789e+05\n",
       "2  攀枝花市   5.378351e+05\n",
       "3   泸州市   1.111448e+06\n",
       "4   德阳市   6.773837e+05"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "raw_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90325c1a",
   "metadata": {},
   "source": [
    "# 标签Encode"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "364598ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import OrdinalEncoder"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e3215036",
   "metadata": {},
   "outputs": [],
   "source": [
    "encoder = OrdinalEncoder()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ecb97f34",
   "metadata": {},
   "outputs": [],
   "source": [
    "row_drop_obj = row_data.drop('各市（州）', axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "7a3324e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "row_drop_obj['各市（州）'] = encoder.fit_transform(np.array(row_data['各市（州）']).reshape(-1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "a78df2b0",
   "metadata": {},
   "outputs": [],
   "source": [
    "processed_data = row_drop_obj.set_index('各市（州）')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a1bd1af3",
   "metadata": {},
   "source": [
    "# K-means 聚类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "00bc0b9a",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = np.array(processed_data.iloc[:, 0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "ef7fb994",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot( x = X,\n",
    "                y = np.array(row_drop_obj.iloc[:, 1]),\n",
    "               hue= np.array(row_drop_obj.iloc[:, 1]))\n",
    "plt.ylabel('States')\n",
    "plt.xlabel('number')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "d55fe364",
   "metadata": {},
   "outputs": [],
   "source": [
    "cls = KMeans(n_clusters=3, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "b13b2c9b",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/root/miniconda3/lib/python3.8/site-packages/sklearn/cluster/_kmeans.py:1412: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning\n",
      "  super()._check_params_vs_input(X, default_n_init=10)\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n",
      "Exception ignored on calling ctypes callback function: <function _ThreadpoolInfo._find_modules_with_dl_iterate_phdr.<locals>.match_module_callback at 0x7f42f0e34af0>\n",
      "Traceback (most recent call last):\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 400, in match_module_callback\n",
      "    self._make_module_from_path(filepath)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 515, in _make_module_from_path\n",
      "    module = module_class(filepath, prefix, user_api, internal_api)\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 606, in __init__\n",
      "    self.version = self.get_version()\n",
      "  File \"/root/miniconda3/lib/python3.8/site-packages/threadpoolctl.py\", line 646, in get_version\n",
      "    config = get_config().split()\n",
      "AttributeError: 'NoneType' object has no attribute 'split'\n"
     ]
    }
   ],
   "source": [
    "y_pred = cls.fit_predict(X.reshape(-1, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "d71fd6b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Axes: >"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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tR4/qsbKjxRobpQVaFOgqUENH3+otob6lF2eAwAg1QguvVAoEFBz9YGIbc2HqhRqa01yRQAA9A4El14o1NYmRbmqYgWDsgKBJFcEAEDvQHDphQzD6GqB5BQCAEAvQ3DphQynU4bDEbHNdLnpnAsASFsEl17IdLmVPWS4pDOurBiGsoeUy3S5U1IXAACpxj/deyHDMOTKzpH33DHyH61TsOWEHFlZ8vQfQGgBAKS1mK+4bNu2TbNmzVJpaakMw9C6devatRuGEXH62c9+FnWby5cvj7hOS0tLzD+orzBMhxwZmcosGazsYSOUWXRyDBejDw8qBABAV2I+CzY1NWncuHFasmRJxPbq6up2069//WsZhqEbbrih0+3m5eV1WDcjIyPW8vocwzBkmo6uO+wCAJAEFRUVmjhxonJzc1VYWKjZs2drz549Sfv+mG8VzZw5UzNnzozaXlxc3O7z888/r+nTp2v48OGdbtcwjA7rAgCAzgWDQb3z/3brcO0RDSws0EWXXChHlAc84mHr1q2aP3++Jk6cqEAgoO9///uaMWOG3n//fWVnZyfse09JaB+Xzz77TC+88IJ+85vfdLlsY2Ojhg4dqmAwqM997nP68Y9/HH7rZCR+v19+vz/82efzxaVmAADsYtNL27T4gcf0WfXh8LyikoG699//VV+YOTUh3/mnP/2p3edly5apsLBQb7/9tqZOTcx3ni6hHSZ+85vfKDc3V1/60pc6XW706NFavny51q9fr+eee04ZGRm67LLLtHfv3qjrVFRUyOv1hqeysvR5TwMAAJte2qb/9a0ftgstklRbc1j/61s/1KaXtiWljvr6eklSfn5+Ur7PsHrw4hvDMLR27VrNnj07Yvvo0aN19dVX6+c//3lM2w2FQrrooos0depUPfbYYxGXiXTFpaysTPX19crLy4vp+wAASLaWlhZVVlaqvLw85j6dwWBQ1142p0NoOcUwpKLiQr302sqE3jayLEvXX3+9jh07pldeeSXqcp39Vp/PJ6/Xe9bn74TdKnrllVe0Z88erVq1KuZ1TdPUxIkTO73i4vF45PF4elIiAAC29M7/2x01tEgn3xpTU12rd/7fbk2cHL3bRU/ddddd2r17t1599dWEfceZEnar6Omnn9aECRM0bty4mNe1LEu7du1SSUlJAioDAMDeDtceiety3XH33Xdr/fr1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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot(hue = y_pred, x = X, y = np.array(row_drop_obj.iloc[:, 1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "d250a1cd",
   "metadata": {},
   "outputs": [],
   "source": [
    "raw_index = raw_data.iloc[:, 0].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "38fed312",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "第一类: \n",
      "自贡市 攀枝花市 德阳市 绵阳市 广元市 遂宁市 内江市 眉山市 宜宾市 广安市 雅安市 巴中市 资阳市 阿坝藏族羌族自治州 甘孜藏族自治州 \n",
      "第二类: \n",
      "成都市 \n",
      "第三类: \n",
      "泸州市 乐山市 南充市 达州市 凉山彝族自治州 "
     ]
    }
   ],
   "source": [
    "print('\\n第一类: ')\n",
    "for i in raw_index[y_pred == 0]:\n",
    "    print(i, end=' ')\n",
    "print('\\n第二类: ')\n",
    "for i in raw_index[y_pred == 1]:\n",
    "    print(i, end=' ')\n",
    "print('\\n第三类: ')\n",
    "for i in raw_index[y_pred == 2]:\n",
    "    print(i, end=' ')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
